Field of the Invention
The present invention relates to software debugging and more particularly to data viewing during software debugging.
Description of the Related Art
In computer software development, the process of debugging is the process of locating and fixing or bypassing errors in computer program code. Debugging techniques range from the manual observation of the performance of a computer program, to the embedding within the computer program debugging statements, to the more sophisticated automated management of a debugging session utilizing an separate, debugging tool. Traditional debugging tools are either standalone tools, or tools included as part of an integrated development environment (“IDE”). Debugging tools incorporated within an IDE have been part and parcel of software development for over a quarter century.
Debugging a traditional stand alone application involves loading the target application into memory and executing selected instructions of the target application through the debugger. Ascertaining the state of any data processed within the target application can be achieved through a debugger view of the data elements of the target application. Ascertaining the state of persisted data processed by a target application can be nearly as simple to the extent that the persisted data becomes persisted by the target application in real time. So much, however, is not the case with a transaction based target application, for instance a multi-user database driven application. In the latter instance, while data elements may have changed within the target application processing space, the changed data elements may not commit to fixed storage until some time later—even if for a brief period of time.
When debugging a transaction based target application, it may be necessary to see the data on file. As would be understood by one of skill in the art, a file is an aggregation of data on a storage medium such as the content of a database, content referenced by direct addressing on a direct access storage device (“DASD”), the content of a traditional hierarchical file system (“HFS”) and the like. Outside of the execution of the target application, one can view the content of the data on file by externally loading the content of the file in memory and inspecting the content. So much is referred to as the “system view” of the file. However, the state of the file as viewed from the perspective of the system may not be synchronized with that of the file as viewed from the perspective of the target application due to the commit scope of the target application.
The disparity of views of the same file from the system perspective and the application perspective can be problematic for several reasons. First, when the end user works with a commit scope, the user may need to know what the data looks like on the system, i.e. to all users, not just to the end user. Otherwise, the end user may make incorrect decisions while debugging the target application if the end user does not understand the data present on the system. Also, the target application may have updated a file in a commit scope, and closed that file. The end user may need to know what the data is on the file before the commit scope is closed.